package br.com.tarcilahelpdesk.persistencia;

import br.com.tarcilahelpdesk.enums.EnumObjetosPersistentes;
import br.com.tarcilahelpdesk.enums.EnumTipoAtributo;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.UniqueConstraint;

/**
 * Classe de entidade do hibernate.
 * @author vinicius.fonseca
 */
@Entity
@Table(uniqueConstraints =
{
    @UniqueConstraint(columnNames =
    {
        "objeto", "nomeAtributo"
    })
})
public class AtributoValor extends ObjetoPersistente
{

    @Enumerated(EnumType.ORDINAL)
    private EnumObjetosPersistentes objeto;
    private String nomeAtributo;
    @Enumerated(EnumType.ORDINAL)
    private EnumTipoAtributo tipo;
    @ManyToOne
    private Chamado chamado;
    @ManyToOne
    private Solicitante solicitante;
    private String valorTexto;
    private Long valorNumero;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date valorData;
    private char valorChar;    
    private boolean valorBooleano;
    @Lob
    private String valorTextoLongo;

    public Chamado getChamado()
    {
        return chamado;
    }

    public void setChamado(Chamado chamado)
    {
        this.chamado = chamado;
    }

    public boolean isValorBooleano()
    {
        return valorBooleano;
    }

    public void setValorBooleano(boolean valorBooleano)
    {
        this.valorBooleano = valorBooleano;
    }

    public char getValorChar()
    {
        return valorChar;
    }

    public void setValorChar(char valorChar)
    {
        this.valorChar = valorChar;
    }

    public Date getValorData()
    {
        return valorData;
    }

    public void setValorData(Date valorData)
    {
        this.valorData = valorData;
    }

    public String getValorTexto()
    {
        return valorTexto;
    }

    public void setValorTexto(String valorTexto)
    {
        this.valorTexto = valorTexto;
    }

    public String getValorTextoLongo()
    {
        return valorTextoLongo;
    }

    public void setValorTextoLongo(String valorTextoLongo)
    {
        this.valorTextoLongo = valorTextoLongo;
    }
    
    public String getNomeAtributo()
    {
        return nomeAtributo;
    }

    public void setNomeAtributo(String nomeAtributo)
    {
        this.nomeAtributo = nomeAtributo;
    }

    public EnumObjetosPersistentes getObjeto()
    {
        return objeto;
    }

    public void setObjeto(EnumObjetosPersistentes objeto)
    {
        this.objeto = objeto;
    }

    public EnumTipoAtributo getTipo()
    {
        return tipo;
    }

    public void setTipo(EnumTipoAtributo tipo)
    {
        this.tipo = tipo;
    }

    public Long getValorNumero()
    {
        return valorNumero;
    }

    public void setValorNumero(Long valorNumero)
    {
        this.valorNumero = valorNumero;
    }

    

    public Solicitante getSolicitante()
    {
        return solicitante;
    }

    public void setSolicitante(Solicitante solicitante)
    {
        this.solicitante = solicitante;
    }
    
    
    
    
}
